home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / scrbas.arc / SCREEN.DOC < prev    next >
Text File  |  1987-01-02  |  7KB  |  208 lines

  1.         SCREEN.BAS V1.0 (12/15/86)
  2.         SCREEN.BAS V1.1 (01/02/87)  DELETED UNUSED COMMON VARIABLES
  3.                                     POLISHED UP THIS DOC
  4.  
  5. AUTHOR: 
  6.  
  7.         BRIAN D SNYDER
  8.         DIGITAL DATA SYSTEMS
  9.         2104 BREMO ROAD, SUITE 1
  10.         RICHMOND, VA 23230
  11.         804-288-8552
  12.  
  13. RULES FOR USE OR DISTRIBUTION:
  14.  
  15.         NONE ! (AND I WON'T LOWER MYSELF TO ASK FOR $$$)
  16.  
  17.         PLEASE LET ME KNOW ABOUT ANY BUGS,
  18.         AND SEND ME COMMENTS AND SUGESTIONS, THANKS....
  19.  
  20. BACKGROUND:
  21.  
  22.         Before getting involved with programming on PC'S, I wrote
  23.         real-time order entry applications on the DEC PDP11's using
  24.         MACRO-11 for about 8 years. I had developed a library of screen
  25.         routines which was the basis for my program development.
  26.         In 1985 I went out and bought a TANDY 1000 (back then as a DEC
  27.         programmer it was hard to consider buying a I-B-M P-C !).
  28.         After writting some small programs using BASIC, I realized
  29.         that I really missed the screen routines that I had been
  30.         using on the DEC for many years. I knew enough about BASIC
  31.         to be dangerous, and decided to scrounge around compuserve
  32.         for some examples. I came across NELSON FORD'S INKEY.BAS
  33.         and used that as a base for my field input routine. Since
  34.         I must have downloaded hundreds of programs and routines
  35.         from boards across the country, I hope this is a start to
  36.         pay the PUBLIC DOMAIN system back !
  37.  
  38. REQUIREMENTS:
  39.  
  40.         QUICKBASIC  VERSION 1.X OR 2.X
  41.  
  42.         QB DEMO.BAS,,NUL
  43.         QB SCREEN.BAS,,NUL/X
  44.         LINK DEMO+SCREEN;
  45.  
  46. ROUTINES:
  47.  
  48. ******  IN MANY OF THE CALLS I USED ARRAYS FOR ARGUMENTS WHICH ALLOWED ME TO
  49.         BE MORE FLEXABLE IN DISPLAYING AND ACCEPTING FIELDS, BUT OF COURSE YOU
  50.         MAY WISH TO JUST USE VARIABLES....
  51.  
  52.  
  53.  
  54. CALL:           CHGATTR (ARG1%,ARG2%,ARG3%,ARG4%)
  55.  
  56. DESCRIPTION:    CHANGES ATTRIBUTES OF CHARACTERS ON SCREEN
  57.  
  58. ARGUMENTS:      ARG1%   = ROW
  59.                 ARG2%   = STARTING COLUMN
  60.                 ARG3%   = ENDING COLUMN
  61.                 ARG4%   = ATTRIBUTE
  62.  
  63.  
  64.  
  65. CALL:           FUNCTIONS (ARG1$)
  66.  
  67. DESCRIPTION:    DISPLAYS FUNCTION KEY DEFINITIONS
  68.  
  69. ARGUMENTS:      ARG1$   = STRING OF FUNCTION KEY DEFINITIONS SEPERATED BY
  70.                           COMMAS. (CAN OMITT KEYS WITH COMMAS ALONE)
  71.  
  72.  
  73.  
  74. CALL:           ACCEPT (ARG1$(),ARG2$)
  75.  
  76. DESCRIPTION:    ACCEPTS DATA.
  77.  
  78. ARGUMENTS:      ARG1$() = ARRAY ELEMENT CONTAINING A 6 ARGUMENT STRING
  79.  
  80.                           ARG1 = LINE #
  81.                           ARG2 = COLUMN #
  82.                           ARG3 = FIELD DEFINITION
  83.                                  REV   = REVERSE VIDIO
  84.  
  85.                                  ALP   = ALPHA
  86.                                  NUM   = NUMERIC
  87.                                  DEC   = DECIMAL
  88.  
  89.                                  LCK   = "LOCKS" (SKIPS) INPUT FOR THIS FIELD
  90.                                           THIS ALLOWS YOU TO CHANGE WHAT FIELDS
  91.                                           ARE PROMPTED FOR BY JUST CHANGING THE
  92.                                           ARG1$() STRING FOR EACH FIELD.
  93.  
  94.                                  CAP   = CHANGES ANY LOWER CASE INPUT TO UPPER
  95.  
  96.                                  NODEF = NO NUM OR DEC DEFAULT (NO 0 OR 0.00 )
  97.                                           (IF RETURN IS PRESSED WITH NO INPUT
  98.                                           NO VALUE WILL BE LOADED INTO THE
  99.                                           OUTPUT FIELD.)
  100.  
  101.                           ARG4 = FORMATTED DATA LENGTH
  102.  
  103.                                  (IF DEC THEN ARG4 WILL BE THE FIELD LENGTH
  104.                                  INCLUDING THE DECIMAL POINT,
  105.                                  BUT THE ACTUAL DECIMAL POINT "." WILL
  106.                                  NOT BE RETURNED IN THE OUTPUT FIELD, THERE
  107.                                  WILL BE AN ASSUMED DECIMAL POINT.
  108.  
  109.                                  EXAMPLE OF DECIMAL TYPE INPUT:
  110.  
  111.                                  INP$(1)="06,02,NUM!DEC,9,ACCOUNT"
  112.  
  113.                                  ( 1    [RETURN] = "     100" )
  114.                                  ( 1.5  [RETURN] = "     150" )
  115.                                  ( 1.50 [RETURN] = "     150" )
  116.                                  ( .50  [RETURN] = "      50" )
  117.                                  (      [RETURN] = "     000" ) )
  118.  
  119.                           ARG5 = (EDIT SWITCH)
  120.  
  121.                                   YES = CAN OMITT
  122.                                   NO  = CAN'T OMITT
  123.  
  124.                                   (THIS CAN BE OVERRIDDEN BY SETTING
  125.                                    EDITMODE = YES
  126.                                    OR
  127.                                    EDITMODE = NO
  128.                                    IN MAIN LINE CODE.)
  129.  
  130.                           ARG5 = HELP KEY
  131.                                  (SOMETHING I USE TO KEY ON HELP MESSAGES,
  132.                                   WHICH IS NOT INCLUDED HERE.)
  133.  
  134.                 ARG2$   = STRING VARIABLE USED FOR OUTPUT DATA FROM ACCEPT.
  135.  
  136.  
  137.  
  138. CALL:           DISERR  (ARG1%,ARG2$)
  139.  
  140. DESCRIPTION:    DISPLAYS ERROR ON LINE 24 FROM TABLE OR ONE YOU INCLUDE IN CALL
  141.  
  142. ARGUMENTS:      ARG1%   = ERROR NUMBER
  143.                           IF < 100 THEN      DISPLAYS BASIC ERROR
  144.                           IF > 100 AND < 200 DISPLAYS ERROR FROM TABLE
  145.                           IF > 200           DISPLAYS ERROR STRING FROM ARG2$
  146.  
  147.                 ARG2$   = ERROR STRING TO DISPLAY IF ARG%1 > 200
  148.  
  149.  
  150.  
  151. CALL:           ASKUM   (ARG1$,ARG2$)
  152.  
  153. DESCRIPTION:    DISPLAYS PROMPT ON LINE 24 AND WAITS FOR SINGLE KEYSTROKE
  154.  
  155. ARGUMENTS:      ARG1$   = PROMPT STRING
  156.                 ARG2$   = RETURNED INPUT
  157.  
  158.  
  159.  
  160. CALL:           DISDATE
  161.  
  162. DESCRIPTION:    DISPLAYS DATE AND TIME IN UPPER RIGHT HAND CORNER OF SCREEN
  163.  
  164. ARGUMENTS:      NONE
  165.  
  166.  
  167.  
  168. CALL:           DISPBIN (ARG1$(),ARG2$(),ARG3$())
  169.  
  170. DESCRIPTION:    DISPLAYS NUMERIC VARIABLES
  171.  
  172. ARGUMENTS:      SAME AS "DISPLAY"
  173.  
  174.  
  175. CALL:           DISPLAY (ARG1$(),ARG2$(),ARG3%)
  176.  
  177. DESCRIPTION:    DISPLAYS ASCII VARIABLES OR HEADING ON SCREEN.
  178.                 IF ARG2$()="" THEN ARG4 IN ARG1$1() IS DISPLAYED ELSE
  179.                    DATA IN ARG2$() IS DISPLAYED.
  180.  
  181. ARGUMENTS:      ARG1$() = ARRAY ELEMENT CONTAINING A 4 ARGUMENT STRING
  182.  
  183.                           ARG1 = LINE # (ZERO FOR NO LINE POSITIONING)
  184.                           ARG2 = COLUMN #
  185.                           ARG3 = FIELD DEFINITION
  186.                                  REV   = REVERSE VIDIO
  187.                                  BLINK = BLINK
  188.                                  HIGH  = HIGH INTENSITY
  189.  
  190.  
  191.                                  IF ARG2$()<>"" THEN
  192.  
  193.                                  ALP   = ALPHA
  194.                                  NUM   = NUMERIC
  195.                                  DEC   = DECIMAL
  196.  
  197.                                  IF ARG2$() ="" THEN
  198.  
  199.                           ARG4 = ASCII STRING WHICH IS DISPLAYED
  200.  
  201.                 ARG2$() = ARRAY ELEMENT CONTAINING OPTIONAL DATA.
  202.                 ARG3%   = NUMBER OF LINES TO ADD TO ARG1
  203.                           (ARG3% NORMALLY EQUALS ZERO, I SET THIS UP SO
  204.                            I COULD DISPLAY MULTIPLE LINES WITHOUT CHANGING
  205.                            THE ORIGINAL LINE VALUE IN ARG1 OF ARG1$(). )
  206.  
  207.  
  208.